﻿<?xml version="1.0" encoding="UTF-8"?>
<Rights xmlns="http://v8.1c.ru/8.2/roles" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Rights" version="2.16">
	<setForNewObjects>false</setForNewObjects>
	<setForAttributesByDefault>true</setForAttributesByDefault>
	<independentRightsOfChildObjects>false</independentRightsOfChildObjects>
	<object>
		<name>InformationRegister.СнимкиОтчетов</name>
		<right>
			<name>Read</name>
			<value>true</value>
			<restrictionByCondition>
				<condition>#Если &amp;ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляРегистра("ИдентификаторыОбъектовМетаданных.РегистрСведенийСнимкиОтчетов", "Пользователь", "", "", "", "")
#Иначе
ГДЕ Пользователь = &amp;ТекущийПользователь
#КонецЕсли</condition>
			</restrictionByCondition>
		</right>
		<right>
			<name>Update</name>
			<value>true</value>
			<restrictionByCondition>
				<condition>#Если &amp;ОграничениеДоступаНаУровнеЗаписейУниверсально #Тогда
#ДляРегистра("ИдентификаторыОбъектовМетаданных.РегистрСведенийСнимкиОтчетов", "Пользователь", "", "", "", "")
#Иначе
ГДЕ Пользователь = &amp;ТекущийПользователь
#КонецЕсли</condition>
			</restrictionByCondition>
		</right>
		<right>
			<name>View</name>
			<value>true</value>
		</right>
		<right>
			<name>Edit</name>
			<value>true</value>
		</right>
		<right>
			<name>TotalsControl</name>
			<value>true</value>
		</right>
	</object>
	<object>
		<name>CommonCommand.СнимкиОтчетовДляАвтономногоРежима</name>
		<right>
			<name>View</name>
			<value>true</value>
		</right>
	</object>
	<object>
		<name>Configuration.БиблиотекаСтандартныхПодсистем</name>
		<right>
			<name>MainWindowModeNormal</name>
			<value>true</value>
		</right>
		<right>
			<name>MainWindowModeWorkplace</name>
			<value>true</value>
		</right>
		<right>
			<name>MainWindowModeEmbeddedWorkplace</name>
			<value>true</value>
		</right>
		<right>
			<name>MainWindowModeFullscreenWorkplace</name>
			<value>true</value>
		</right>
		<right>
			<name>MainWindowModeKiosk</name>
			<value>true</value>
		</right>
		<right>
			<name>AnalyticsSystemClient</name>
			<value>true</value>
		</right>
	</object>
	<restrictionTemplate>
		<name>ДляРегистра(Регистр, Поле1, Поле2, Поле3, Поле4, Поле5)</name>
		<condition>// ДляРегистра(Регистр, Поле1, Поле2 = "", Поле3 = "", Поле4 = "", Поле5 = "")
// Шаблон используется для ограничения групп записей регистров.
//
// Параметры:
//  Регистр - имя предопределенного элемента справочника Идентификаторы объектов метаданных или справочника
//            Идентификаторы объектов расширений в формате: имя справочника с точкой и полное имя таблицы
//            без точки, например, ИдентификаторыОбъектовМетаданных.РегистрНакопленияОстаткиНаСкладах;
//          - имя отдельного регистра ключей в формате КлючиДоступаКРегистру&lt;ОстатокИмени&gt;,
//            например, КлючиДоступаКРегиструОстаткиНаСкладах.
//  Поле1   - имя первого поля (измерения, ресурса, реквизита), которое будет соединяться с полем Поле1
//            регистра сведений КлючиДоступаКРегистр*
//  Поле2   - аналогично предыдущему параметру, если используется в ограничении доступа к регистру.
//  ...
//  Поле5   - аналогично предыдущему параметру, если используется в ограничении доступа к регистру.

#Если &amp;СпискиСОтключеннымОграничениемЧтения = "Неопределено" #Тогда
  // Информационная база заблокирована для обновления.
  ГДЕ ЛОЖЬ

#ИначеЕсли Не СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ДляРегистра9,") #Тогда
  Ошибка: Требуется обновить шаблон на актуальную версию, поставляемую в роли ИзменениеУчастниковГруппДоступа по причине: Используется устаревшая версия 9 шаблона ограничения доступа ДляРегистра. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.

#ИначеЕсли &amp;СпискиСОтключеннымОграничениемЧтения = "Все" #Тогда
  // У пользователя отключены все виды доступа или
  // ограничение на уровне записей не используется.
  ГДЕ ИСТИНА

#ИначеЕсли СтрСодержит(&amp;СпискиСОтключеннымОграничениемЧтения, #ИмяТекущейТаблицы + ";") #Тогда
  // У пользователя отключено ограничение для текущей таблицы.
  ГДЕ ИСТИНА

#ИначеЕсли СтрСодержит(&amp;ВерсииШаблоновОграниченияДоступа, ",ТребуетсяПерезапуститьСеанс,") #Тогда
  Ошибка: Версия программы обновлена, требуется перезапустить сеанс. Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.

#ИначеЕсли #ИмяТекущегоПраваДоступа &lt;&gt; "Чтение" #Тогда
  // Проверка прав Добавление, Изменение, Удаление выполняется ПередЗаписью / ПриЗаписи.
  ГДЕ ИСТИНА

#ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ";0") #Тогда
  ГДЕ ЛОЖЬ

#ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ";1") #Тогда
  Ошибка: Внешние пользователи отключены.

#ИначеЕсли Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа,  #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;")
         И Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда

  Ошибка: Требуется актуализировать ограничение доступа по причине: Не удалось определить вариант ограничения доступа в параметрах сеанса для шаблона ДляРегистра со значениями параметров "#Регистр", "#Поле1", "#Поле2", "#Поле3", "#Поле4", "#Поле5". Объект: #ИмяТекущейТаблицы, Право: #ИмяТекущегоПраваДоступа.
#Иначе

ТекущаяТаблица ГДЕ ИСТИНА В
 (
  ВЫБРАТЬ ПЕРВЫЕ 1 ИСТИНА
#Если Не СтрСодержит("#Регистр", "КлючиДоступаКРегистру") #Тогда
  ИЗ РегистрСведений.КлючиДоступаКРегистрам КАК КлючиДоступаКРегистрам
#Иначе
  ИЗ РегистрСведений.#Регистр КАК КлючиДоступаКРегистрам
#КонецЕсли
  #Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа,  #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаНаборовГруппДоступа КАК КлючиДоступаНаборовГруппДоступа
      ПО
          КлючиДоступаНаборовГруппДоступа.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа
        И КлючиДоступаНаборовГруппДоступа.НаборГруппДоступа = &amp;РазрешенныйНаборГруппДоступа
  #КонецЕсли
  #Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа,  #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;*") #Тогда
      
      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаНаборовГруппДоступа КАК КлючиДоступаРазрешенногоНабораГруппДоступа
      ПО
          КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа
        И КлючиДоступаРазрешенногоНабораГруппДоступа.НаборГруппДоступа = &amp;РазрешенныйПустойНаборГруппДоступа
  #КонецЕсли
  #Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
      
    #Если &amp;ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда
      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаПользователей КАК КлючиДоступаПользователей
      ПО
          КлючиДоступаПользователей.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа
        И КлючиДоступаПользователей.Пользователь = &amp;РазрешенныйПользователь
    #Иначе
      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаВнешнихПользователей КАК КлючиДоступаПользователей
      ПО
          КлючиДоступаПользователей.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа
        И КлючиДоступаПользователей.ВнешнийПользователь = &amp;РазрешенныйПользователь
    #КонецЕсли
  #КонецЕсли
  #Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;+") #Тогда
      
    #Если &amp;ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда
      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаПользователей КАК КлючиДоступаНаборовГруппПользователей
      ПО
          КлючиДоступаНаборовГруппПользователей.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа
        И КлючиДоступаНаборовГруппПользователей.Пользователь = &amp;РазрешенныйНаборГруппПользователей
    #Иначе
      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КлючиДоступаВнешнихПользователей КАК КлючиДоступаНаборовГруппПользователей
      ПО
          КлючиДоступаНаборовГруппПользователей.КлючДоступа = КлючиДоступаКРегистрам.КлючДоступа
        И КлючиДоступаНаборовГруппПользователей.ВнешнийПользователь = &amp;РазрешенныйНаборГруппПользователей
    #КонецЕсли
  #КонецЕсли
  ГДЕ
  #Если Не СтрСодержит("#Регистр", "КлючиДоступаКРегистру") #Тогда
      КлючиДоступаКРегистрам.Регистр = Значение(Справочник.#Регистр)
  #Иначе
      ИСТИНА
  #КонецЕсли
    И
  (
      КлючиДоступаКРегистрам.ВариантДоступа =
    (
  #Если &amp;ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда 0 #Иначе 1 #КонецЕсли
  #Если Не СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Версия1=0") #Тогда
     #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле") #Тогда +   2 #КонецЕсли
     #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле") #Тогда +   2 #КонецЕсли
     #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле") #Тогда +   2 #КонецЕсли
     #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле") #Тогда +   2 #КонецЕсли
     #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле5=Поле") #Тогда +   2 #КонецЕсли
     #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия1Бит0=1")      #Тогда +  64 #КонецЕсли
     #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия1Бит1=1")      #Тогда + 128 #КонецЕсли
     #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия1Бит2=1")      #Тогда + 256 #КонецЕсли
     #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия1Бит3=1")      #Тогда + 512 #КонецЕсли
  #КонецЕсли
    )
  #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле1;") #Тогда
    И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле1
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле2;") #Тогда
    И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле2
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле3;") #Тогда
    И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле3
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле4;") #Тогда
    И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле4
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле1=Поле5;") #Тогда
    И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле5
  #КонецЕсли
  
  #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле2;") #Тогда
    И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле2
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле3;") #Тогда
    И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле3
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле4;") #Тогда
    И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле4
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле2=Поле5;") #Тогда
    И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле5
  #КонецЕсли
  
  #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле3;") #Тогда
    И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле3
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле4;") #Тогда
    И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле4
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле3=Поле5;") #Тогда
    И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле5
  #КонецЕсли
  
  #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле4;") #Тогда
    И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле4
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле4=Поле5;") #Тогда
    И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле5
  #КонецЕсли
  
  #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант1Поле5=Поле5;") #Тогда
    И КлючиДоступаКРегистрам.Поле5 = ТекущаяТаблица.#Поле5
  #КонецЕсли
 
 #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2") #Тогда
 
  ИЛИ
      КлючиДоступаКРегистрам.ВариантДоступа =
    (
  #Если &amp;ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда 0 #Иначе 1 #КонецЕсли
  #Если Не СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Версия2=0") #Тогда
     #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле") #Тогда +   2 #КонецЕсли
     #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле2=Поле") #Тогда +   2 #КонецЕсли
     #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле3=Поле") #Тогда +   2 #КонецЕсли
     #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле4=Поле") #Тогда +   2 #КонецЕсли
     #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле5=Поле") #Тогда +   2 #КонецЕсли
     #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия2Бит0=1")      #Тогда +  64 #КонецЕсли
     #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия2Бит1=1")      #Тогда + 128 #КонецЕсли
     #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия2Бит2=1")      #Тогда + 256 #КонецЕсли
     #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия2Бит3=1")      #Тогда + 512 #КонецЕсли
  #КонецЕсли
    )
  #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле1;") #Тогда
    И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле1
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле2;") #Тогда
    И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле2
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле3;") #Тогда
    И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле3
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле4;") #Тогда
    И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле4
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле1=Поле5;") #Тогда
    И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле5
  #КонецЕсли
  
  #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле2=Поле2;") #Тогда
    И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле2
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле2=Поле3;") #Тогда
    И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле3
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле2=Поле4;") #Тогда
    И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле4
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле2=Поле5;") #Тогда
    И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле5
  #КонецЕсли
  
  #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле3=Поле3;") #Тогда
    И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле3
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле3=Поле4;") #Тогда
    И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле4
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле3=Поле5;") #Тогда
    И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле5
  #КонецЕсли
  
  #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле4=Поле4;") #Тогда
    И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле4
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле4=Поле5;") #Тогда
    И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле5
  #КонецЕсли
  
  #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант2Поле5=Поле5;") #Тогда
    И КлючиДоступаКРегистрам.Поле5 = ТекущаяТаблица.#Поле5
  #КонецЕсли
 
 #КонецЕсли
 #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3") #Тогда
 
  ИЛИ
      КлючиДоступаКРегистрам.ВариантДоступа =
    (
  #Если &amp;ТекущийВнешнийПользователь = Значение(Справочник.ВнешниеПользователи.ПустаяСсылка) #Тогда 0 #Иначе 1 #КонецЕсли
  #Если Не СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Версия3=0") #Тогда
     #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле") #Тогда +   2 #КонецЕсли
     #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле2=Поле") #Тогда +   2 #КонецЕсли
     #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле3=Поле") #Тогда +   2 #КонецЕсли
     #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле4=Поле") #Тогда +   2 #КонецЕсли
     #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле5=Поле") #Тогда +   2 #КонецЕсли
     #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия3Бит0=1")      #Тогда +  64 #КонецЕсли
     #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия3Бит1=1")      #Тогда + 128 #КонецЕсли
     #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия3Бит2=1")      #Тогда + 256 #КонецЕсли
     #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Версия3Бит3=1")      #Тогда + 512 #КонецЕсли
  #КонецЕсли
    )
  #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле1;") #Тогда
    И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле1
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле2;") #Тогда
    И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле2
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле3;") #Тогда
    И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле3
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле4;") #Тогда
    И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле4
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле1=Поле5;") #Тогда
    И КлючиДоступаКРегистрам.Поле1 = ТекущаяТаблица.#Поле5
  #КонецЕсли
  
  #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле2=Поле2;") #Тогда
    И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле2
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле2=Поле3;") #Тогда
    И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле3
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле2=Поле4;") #Тогда
    И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле4
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле2=Поле5;") #Тогда
    И КлючиДоступаКРегистрам.Поле2 = ТекущаяТаблица.#Поле5
  #КонецЕсли
  
  #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле3=Поле3;") #Тогда
    И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле3
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле3=Поле4;") #Тогда
    И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле4
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле3=Поле5;") #Тогда
    И КлючиДоступаКРегистрам.Поле3 = ТекущаяТаблица.#Поле5
  #КонецЕсли
  
  #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле4=Поле4;") #Тогда
    И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле4
  #ИначеЕсли СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле4=Поле5;") #Тогда
    И КлючиДоступаКРегистрам.Поле4 = ТекущаяТаблица.#Поле5
  #КонецЕсли
  
  #Если СтрСодержит(&amp;СпискиСОграничениемПоПолям, #ИмяТекущейТаблицы + ":Вариант3Поле5=Поле5;") #Тогда
    И КлючиДоступаКРегистрам.Поле5 = ТекущаяТаблица.#Поле5
  #КонецЕсли
 
 #КонецЕсли
  )
    И (
  #Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
          НЕ КлючиДоступаНаборовГруппДоступа.КлючДоступа ЕСТЬ NULL
  #Иначе
          ЛОЖЬ
  #КонецЕсли
  #Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаГруппДоступа, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;*") #Тогда
      ИЛИ НЕ КлючиДоступаРазрешенногоНабораГруппДоступа.КлючДоступа ЕСТЬ NULL
  #КонецЕсли
  #Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
      ИЛИ НЕ КлючиДоступаПользователей.КлючДоступа ЕСТЬ NULL
  #КонецЕсли
  #Если СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;+") #Тогда
      ИЛИ НЕ КлючиДоступаНаборовГруппПользователей.КлючДоступа ЕСТЬ NULL
  #КонецЕсли
      )
 )

 #Если Не СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Пропустить;")
   И (    СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";УточнитьДляВсех;")
      Или СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, #ИмяТекущейТаблицы + ":Уточнить;") ) #Тогда
  
  #Если Не СтрСодержит(&amp;СпискиСОграничениемЧерезКлючиДоступаПользователей, #ИмяТекущейТаблицы + ":[#Регистр]:#Поле1:#Поле2:#Поле3:#Поле4:#Поле5;") #Тогда
  И ИСТИНА В (ИСТИНА
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";31;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";30;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";29;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";28;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";27;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";26;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";25;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";24;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";23;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";22;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";21;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";20;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";19;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";18;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";17;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";16;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";15;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";14;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";13;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";12;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";11;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";10;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";09;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";08;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";07;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";06;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";05;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";04;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";03;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";02;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";01;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";00;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	)
  #Иначе
  И ИСТИНА В (ИСТИНА
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";31^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";30^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";29^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";28^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";27^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";26^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";25^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";24^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";23^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";22^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";21^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";20^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";19^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";18^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";17^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";16^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";15^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";14^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";13^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";12^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";11^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";10^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";09^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";08^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";07^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";06^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";05^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";04^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";03^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";02^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";01^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	#Если СтрСодержит(&amp;ОбщиеПараметрыШаблоновОграниченияДоступа, ";00^;") #Тогда ,ИСТИНА #Иначе ,ЛОЖЬ #КонецЕсли
	)
  #КонецЕсли
 #КонецЕсли

#КонецЕсли</condition>
	</restrictionTemplate>
</Rights>